# /*
#  * @Author: 陈航
#  * @Date: 2021-07-10 12:46:50
#  * @Last Modified by:   陈航
#  * @Last Modified time: 2021-07-10 12:46:50
#  */


# 题目：数组中占比超过一半的元素称之为主要元素。给你一个整数数组，找出其中的主要元素。
#       若没有，返回 -1 。请设计时间复杂度为 O(N) 、空间复杂度为 O(1) 的解决方案。
#       细节：超过一半，即一半的元素都是这个，不是大于一半元素的意思

# 示例 1：
#   输入：[1,2,5,9,5,9,5,5,5]
#   输出：5

# 示例 2：
#   输入：[3,2]
#   输出：-1

# TODO 下一步进行修改的代码片段


def majorityElement(nums):
    counts = {}
    for items in nums:
        if items not in counts.keys():
            counts[items] = 1
        else:
            counts[items] = counts[items] + 1
    halfNumsLen = len(nums)/2
    for num, count in counts.items():
        if count > halfNumsLen:
            return num
    return -1


if __name__ == "__main__":
    nums_1 = [1, 2, 5, 9, 5, 9, 5, 5, 5]
    nums_2 = [3, 2]
    print(majorityElement(nums_1))
    print(majorityElement(nums_2), end="")
